request
Purpose
request
对象是Servlet API的 HttpServletRequest 类的实体
示例
class BookController {
def list = {
log.info "User agent: " + request.getHeader("User-Agent") render(view:actionName)
}
}
描述
The HttpServletRequest 类非常有用, 在其他事情中
, 获取request头,存储request作用域属性和 创建客户端信息
. 参考Servlet API的
javadocs获取更多信息.
Grails通过添加下面新的属性和方法来增强HttpServletRequest
:
XML
- XmlSlurper
的 GPathResult类的实体,允许解析进入的XML请求(用于REST).
JSON
- Grails的JSONObject类的实体,允许你解析进入的
JSON请求(用于基于REST的JSON).
forwardURI
- 用于获取当前请求URI,因为request
对象requestURI
属性返回原始的URI, 不是一对一.
get
- 如果当前请求为
HTTP GET
请求返回true.
post
- 如果当前请求为
HTTP POST
请求返回true.
each
- Groovy的each
方法的实现,用于迭代请求属性.
find
- Groovy默认的 find
方法的实现,用于搜索请求属性.
findAll
- Groovy默认的findAll
方法的实现,用于搜索请求属性.
format
- 请求格式, 用于内容协商.
XML
和 JSON
属性用于XML APIs 并能用于解析进入的XML
或 JSON 包.例如给定的请求主体:
<book>
<title>The Stand</title>
</book>
这可以被解析为:
def title = request.XML?.book?.title
render "The Title is $title"
请求属性通常
通过getAttribute能被容易的取得也可以使用数组索引操作符索引或.操作符 :
def user = request['user']request['user'] = 'John'
asset 'John' == request.user